#!/usr/bin/python
# -*- coding: utf-8 -*-

from PyQt4 import QtCore, QtGui
from PythonUI.Ui_Page8 import Ui_Page8 #Cette page hérite du fichier généré par pyuic4
import os
import sys
import re
from  Main import *

class Page8(Ui_Page8,QtGui.QDialog):
    """
    Cette page permet de choisir un nom pour la campagne
    """
    
    def __init__(self,session):
        """
        Fonction d'initialisation
        """
        self.app = QtGui.QApplication(sys.argv)
        self.session=session
        QtGui.QDialog.__init__(self)
        self.retour=0
        self.parametre={}
        self.config={}
        self.dicocampagne={}


    def initdico(self):
        """
        Initialise le dictionnaire des campagnes
        """
        expr2=re.compile('[A-Za-z]')        
        fichier=open(os.path.expanduser('~') + '/.GWA/dicocampagne','r')
        for line in fichier.readlines():
            if expr2.findall(line):
                self.dicocampagne[line.split(':')[0].split('\n')[0]]=line.split(':')[1].split('\n')[0]
        fichier.close()
        #On veut que les numeros de ligne
        expr3=re.compile('[1-9]*')
        file=open(os.path.expanduser('~') + '/.GWA/nbMesure','r')
        ligne1=file.readline()
        self.nbMesure=expr3.findall(ligne1)[0]
        file.close()

    def suivant(self):
        """
        Fonction appelee lors de la validation du  bouton 'OK'
        Appel de la page suivante : Page9.py
        """
        self.close()
        obj9=Main()
        obj9.func9(self.config)

    def affich(self,param):
        """
        Fonction permettant a cette page d'etre appele directement par Main.py
        en entrant "./Main.py 8"
        """
	self.setupUi(self)
	self.show()
        sys.exit(self.app.exec_())

    def precedent(self):
        """
        Ferme la page courante et affiche la page précédente : Page 7
        """
        self.close()
        os.system("./Main.py 7")

    def nouvelleCampagne(self):
        """
        Ferme la page courante et affiche la page 5 pour refaire une nouvelle campagne 
        """
        self.close()
        os.system("./Main.py 5")

    def setupUi(self, Dialog):
        """
        Definition de l'interface graphique.
        La majorite de cette fonction est decrite dans le fichier genere par pyuic4 dans PythonUI/...
        """
        Ui_Page8.setupUi(self,Dialog)
        self.initdico();
        self.lineEdit_2.setText(self.nbMesure)
        self.lineEdit_2.setReadOnly(True)
        self.lineEdit_nom_camp.setText(self.dicocampagne["nom"])
        self.lineEdit_nom_camp.setReadOnly(True)
        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"), self.suivant)
        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"), self.precedent)
        QtCore.QObject.connect(self.pushButton_nouvelle_camp, QtCore.SIGNAL("clicked()"), self.nouvelleCampagne)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

